Diary 2025-06-20
Be aware that words tend to be harsh when you're short on capacity.
Maybe it's related to people wanting an organizational chart.
nishio oooh, over 1000 people registered! https://pbs.twimg.com/media/Gt2W8G7WUAAkif2?format=jpg&name=large#.png
nishio If we try to distribute what we want more than 1000 people to do, we usually don't have time to adjust for each individual, so we tend to assign a uniform amount. However, with this method, each individual can choose what he or she wants to do from a list of options, so many things that he or she is good at can be done. nishio You can increase the score for important tasks, decrease the score for tasks that have decreased in demand, and add tasks when you have new things you want done. Not all tasks can be done this way, but it's a very good way to do it with 1000+ supporters of a system of tasks that you want done as many as possible. >nishio: A social experiment is underway to gamify politics on a scale never seen before. You only have about a month left to participate in this first experiment, so I urge you to experience it for yourself. This development itself is open source, and is being done on a daily basis.
I feel like I should write a technical article for Qiita.
I thought it would be better than writing in the Note
Technology Supporting Donation Visualization
Visualize data from Stripe API
If we give people access to the Stripe admin screen, we can see who has donated, so we have to limit who can access it.
The implementation itself was easy, I asked ChatGPT o3 to write it in Python, and he wrote it.
I did some trial and error on my end, then put it on GitHub and told Devin, "I can get data with this, so I'll use it as a reference.
Skills to clarify unclear requirements
What is the data source?
I thought it was just taking data from one Stripe account, but I was wrong.
To begin with, there's an account for a private political organization created in 2024 and an account for a political party created in 2025.
And in some cases, bank transfers are made instead of through Stripe.
Output to?
I had a requirement to write in Google Spreadsheet and visualize in Looker Studio, and a requirement to create a GET API to display on a website.
This is incompatible, and the data you want to display may be different in the first place.
Conclusion.
Google Spreadsheet(A) to book bank transfers
GitHub Actions to read and combine two Stripe accounts and (A)
Output time-series data summarized by day to Google Spreadsheet, which is then visualized in Looker Studio
For the matter of GET API for websites, we decided to generate JSON and upload it to Gist.
Devin is very active
As for the website, I just said, "Hit the API and display it," and gave them the API and an image of the screen design, and it usually worked.
Finally, a little human conditioning was needed.
This fits the utilization pattern of the Devin video, "a human does the beginning and end, and Devin does the middle.
Technology Supporting Supporter Geographic Distribution Visualization
If you take detailed addresses, you'll have to deal with them as personal information, which is more burdensome and not what you want in the first place.
But I'd like some information on "roughly where they are."
→Postal Code
Initial Configuration
Volunteer Registration with Google Form
Enter Google Spreadsheet
Google App Script to hit the API and turn a zip code into an address.
Changing requirements
Action Board Release
I want to eliminate duplicates and add up people who registered on Google Form and people who registered only on Team Mirai Action Board. Asking people who have entered the action board to fill out the Google Form again is subtle.
Different people prefer different entrances and want to maintain both.
Action board data is in Supabase.
A bit loaded to handle with Google App Script
I decided to move my entire data analysis pipeline to GitHub Actions.
It was completed and put into Looker Studio a few days before the switchover, but when we switched to production, we noticed the problem
Isn't it strange that there is a hole in Osaka City?
I shook it to Devin in a messy way and it was destroyed.
Visualization of the degree of Devin utilization?
Technology to Support Policy PR
data collection
Devin
It is well observed that there is a need for such
I'm sure more than a few of those who say "people who want to talk to humans" are "people who want others to listen to them."
But in a place of 100 people, if I speak 1, you have to listen to 99 to balance it out.
Whether you are telling a story that others find valuable.
Others leave around people who talk about things that others don't value.
I think it's a no-brainer to save the cost of screening the wrong people to get them in first and then ban them if they're inappropriate.
The group is for the achievement of objectives, so people who negatively influence the achievement of objectives should be excluded.
---
This page is auto-translated from /nishio/日記2025-06-20 using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.